package com.pi.wms.entity;


import com.fasterxml.jackson.annotation.JsonView;
import com.pi.framework.core.bean.PageResult;
import com.pi.framework.core.model.IdVersionableEntity;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
import org.springframework.data.jpa.datatables.mapping.DataTablesOutput;

import javax.persistence.*;
import java.math.BigDecimal;


@Entity
@NoArgsConstructor
@Getter
@Setter
@Table(name = "VWA_DOC_WAVE_SO_LIST")
public class VwaDocWaveSoList extends IdVersionableEntity{
	private static final long serialVersionUID = -335012125083568L;

    @Id
    @GeneratedValue(generator = "SEQ_VWA_WAVE_SO_LIST_ID")
    @GenericGenerator(name = "SEQ_VWA_WAVE_SO_LIST_ID",strategy = "com.pi.framework.data.FitIdentifierGenerator", parameters = {
            @Parameter(name = "sequence_name", value = "SEQ_VWA_WAVE_SO_LIST_ID") })
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "SO_DETAILS_ID")
    private Long id;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "GCLIENT_ID")
    private Long globalClientId;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "DIVISION_ID")
    private Long divisionId;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "CUSTOMER_ID")
    private Long customerId;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "WAVE_ID")
    private Long waveId;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "WAVE_DETAILS_ID")
    private Long waveDetailsId;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "DOC_NUMBER")
    private String docNumber;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "DOC_TYPE")
    private String docType;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "MATERIAL_ID")
    private Long materialId;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "MATERIAL_CODE")
    private String materialCode;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "MATERIAL_NAME")
    private String materialName;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "SPEC_MODEL")
    private String specModel;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "WAVE_QTY_ORDERED")
    private BigDecimal waveQtyOrdered;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "WAVE_QTY_SHIPPED")
    private BigDecimal waveQtyShipped;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "SO_QTY_ORDERED")
    private BigDecimal soQtyOrdered;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "SO_QTY_SHIPPED")
    private BigDecimal soQtyShipped;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "CHECK_LOT_NUMBER")
    private String checkLotNumber;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "NOTES")
    private String notes;



    

	
}
